#include "../../include/outils/Marqueur.h"


Marqueur::Marqueur(){
	if ( TTF_Init() == -1 ){
		cerr << "Erreur : Initialisation de SDL_TTF ";
		exit(1);
	}
	this->police = NULL;
	this->couleur.r = 250;
	this->couleur.g = 250;
	this->couleur.b = 250;
	this->taille = 12;
	glGenTextures(1, &texture);
}

Marqueur::~Marqueur(){
	TTF_CloseFont( police );
	TTF_Quit();
}

void Marqueur::ecrire(SDL_Surface* ecran, string monTexte){

	unsigned int X, Y;

	createTextureFromText( monTexte.c_str(), this->texture, this->police, &X, &Y);

	glColor4ub(255,255,255,255);
	glBindTexture(GL_TEXTURE_2D, this->texture);
		glBegin(GL_QUADS);
		glTexCoord2i(0,1); glVertex2i(700,550);
		glTexCoord2i(1,1); glVertex2i(800,550);
		glTexCoord2i(1,0); glVertex2i(800,600);
		glTexCoord2i(0,0); glVertex2i(700,600);
	glEnd();
}

SDL_Color Marqueur::getCouleur(){
	return couleur;
}

void Marqueur::setCouleur(SDL_Color couleur){
	this->couleur = couleur;
}

void Marqueur::setCouleur(int r, int g, int b){
	this->couleur.r = r;
	this->couleur.g = g;
	this->couleur.b = b;
}

string Marqueur::getPolice(){
	return policeNom;
}

void Marqueur::setPolice(string police){
	this->policeNom = police;
	this->police = TTF_OpenFont( police.c_str() , this->taille );

	    //Si il y a une erreur au chargement du font
	    if( this->police == NULL )
	    {
	    	cerr << "Erreur: Chargement de la police" << endl;
	        exit(1);
	    }
}

int Marqueur::getTaille(){
	return this->taille;
}

void Marqueur::setTaille(int taille){
	this->taille = taille;
	setPolice(this->policeNom);
}

